<?php
/**
 * 简述区
 *
 * 详细说明区
 *
 * @author    Alex Xun xunzhibin@expert.com
 * @version   1.0
 * @copyright (C) 2018 Jnexpert Ltd. All rights reserved
 * @file      user\controller\v1\User.php
 */

namespace app\user\controller\v1;

use controller\BasicWechat;

/**
 * 功能简述区(短描述)
 *
 * 详细说明区(长描述)
 *
 * @author Alex Xun xunzhibin@jnexpert.com
 * @package controller
 */
class User extends BasicWechat
{
    /**
     * 公众号 第三方库 初始化
     *
     * 根据具体所需服务，实例不同的接口类
     *
     * @author Alex Xun xunzhibin@jnexpert.com
     */
    protected function initVendor()
    {
        // 实例化 第三方库
        $this->wechat = new \WeChat\User($this->config);
    }

    /**
     * 列表
     *
     * 获取账号的关注者列表
     *
     * @author Alex Xun xunzhibin@jnexpert.com
     */
    public function index()
    {
        // 第一个拉取的openid
        $next_openid = '';
        if(isset($this->data['next_openid']) && $this->data['next_openid']) {
            $next_openid = $this->data['next_openid'];
        }

        // 查询
        $result = $this->wechat->getUserList($next_openid);

        // 响应
        return $this->response($result, true);
    }

    /**
     * 基本信息
     *
     * 获取用户基本信息
     *
     * @author Alex Xun xunzhibin@jnexpert.com
     */
    public function read()
    {
        // 默认为简体
        $lang = 'zh_CN';
        if(isset($this->data['lang']) && $this->data['lang']) {
            $lang = $this->data['lang'];
        }

        // 查询
        $result = $this->wechat->getUserInfo(
            $this->data['openid'],
            $lang
        );

        // 响应
        return $this->response($result, true);
    }

    /**
     * 基本信息
     *
     * 批量获取用户基本信息
     *
     * @author Alex Xun xunzhibin@jnexpert.com
     */
    public function readBatch()
    {
        // 默认为简体
        $lang = 'zh_CN';
        if(isset($this->data['lang']) && $this->data['lang']) {
            $lang = $this->data['lang'];
        }

        // 获取
        $result = $this->wechat->getBatchUserInfo(
            $this->data['openid_list'],
            $lang
        );

        // 响应
        return $this->response($result, true);
    }

    /**
     * 更新
     *
     * 更新用户备注名
     *
     * @author Alex Xun xunzhibin@jnexpert.com
     */
    public function update()
    {
        // 更新
        $result = $this->wechat->updateMark(
            $this->data['openid'],
            $this->data['remark']
        );

        // 响应
        return $this->response($result);
    }
}
